﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Xml.Linq;

using Business;

namespace GestorEventos
{
    public partial class viewUser : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            int userID = -369;


            if (Session["userID"] != null)
            {
                userID = Convert.ToInt32(Session["userID"].ToString());
            }

            if (Request.QueryString["userID"] != null)
            {
                userID = Convert.ToInt32(Request.QueryString["userID"].ToString());

            }

            if (userID != -369)
            {
                Utilizador user = new Utilizador();
                Utilizador novo = new Utilizador(user.getUtilizadorByID(userID));

                int status;
                String username, nome, email, rua, localidade, codPostal;

                username = novo.getUsername(); ;
                nome = novo.getNome();
                email = novo.getEmail();
                rua = novo.getRua();
                localidade = novo.getLocalidade(); ;
                codPostal = novo.getCodPostal(); ;
                status = novo.getStatus();

                Label2Username.Text = username;
                Label2Nome.Text = nome;
                Label2Email.Text = email;
                Label2Rua.Text = rua;
                Label2Localidade.Text = localidade;
                Label2CodPostal.Text = codPostal;

                switch (status) {
                    case 1: LabelStatus.Text = "User";
                        break;
                    case 2: LabelStatus.Text = "Mod";
                        break;
                    case 3: LabelStatus.Text = "Admin";
                        break;
    
                    
                }


                if (Session["userStatus"] != null) {
                    
                    int userStatus = Convert.ToInt32(Session["userStatus"].ToString());

                    if (userStatus >= 2) {
                        
                        if (status >= 1 && Convert.ToInt32(Session["userID"].ToString()) != userID)
                        {
                            LabelMaisOpcoes.Text = "Mais opções:";
                            LinkButtonUser.Text = "Block User";
                        }
                        if (status == 0 && Convert.ToInt32(Session["userID"].ToString()) != userID)
                        {
                            LabelMaisOpcoes.Text = "Mais opções:";
                            LinkButtonUser.Text = "Unblock User";
                        }
                    }

                    if (userStatus >= 3 && status != 0)
                    {
                        if (status == 1 && Convert.ToInt32(Session["userID"].ToString()) != userID)
                        {
                            LinkButtonMod.Text = "Set Mod";
                        }
                        if (status == 2 && Convert.ToInt32(Session["userID"].ToString()) != userID)
                        {
                            LinkButtonMod.Text = "Unset Mod";
                        }
                    }
                    
                }

            }
            else
            {
                Response.Redirect("Default.aspx");
            }
        }


        public void blockUser(Object o, EventArgs e) {
            if (Session["userID"] != null) {
                int userID = Convert.ToInt32(Session["userID"].ToString());
                bool value = false;
                Utilizador business = new Utilizador();
                

                int selectedUser = Convert.ToInt32(Request.QueryString["userID"].ToString());
                Utilizador user = new Utilizador(business.getUtilizadorByID(selectedUser));
                if (user.getStatus() == 0) {
                    value = user.setEstadoUtilizador(selectedUser, 1);
                }

                if (user.getStatus() == 1) {

                    value = user.setEstadoUtilizador(selectedUser, 0);
                }         
            
            }
        
        
        }

        public void setMod(Object o, EventArgs e)
        {
            if (Session["userID"] != null)
            {
                int userID = Convert.ToInt32(Session["userID"].ToString());
                bool value = false;
                Utilizador business = new Utilizador();


                int selectedUser = Convert.ToInt32(Request.QueryString["userID"].ToString());
                Utilizador user = new Utilizador(business.getUtilizadorByID(selectedUser));
                if (user.getStatus() == 1)
                {
                    value = user.setEstadoUtilizador(selectedUser, 2);
                }

                if (user.getStatus() == 2)
                {

                    value = user.setEstadoUtilizador(selectedUser, 1);
                }

            }


        }


    }


}